//
// Created by root on 5/26/17.
//

#ifndef FUNNY_RUNNER_TSPL_H
#define FUNNY_RUNNER_TSPL_H

#include "../../src/ds/datastructure.h"
#include "../../src/lex/lexer.h"
#include "../../src/scheme/basic/ds.h"

#define _BOOL(lex)      "(lex \"Boolean\" "#lex")"
#define _CHAR(lex)      "(lex \"Character\" "#lex")"
#define _STR(lex)       "(lex \"String\" "#lex")"
#define _INT(lex)       "(lex \"Integer\" "#lex")"
#define _FRAC(a,b)      "(make-fraction (lex \"Integer\" "#a") (lex \"Integer\" "#b"))"
#define _DEC(lex)       "(lex \"Decimal\" "#lex")"
#define _COMP(a,b)      "(make-complex "#a" "#b")"
#define _SYM(lex)       "(lex \"Symbol\" "#lex")"
#define _CONCAT(a,b,c)  a #b c

int setup(void **state);
int teardown(void **state);
int run_group_tests_of_tspl();
int run_group_tests_of_ch2();
String interpret(String statement);

#endif //FUNNY_RUNNER_TSPL_H
